有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

API低于17的java Android AlertDialog setOnDismissListener

我创建了一个AlertDialog:

private CharSequence[] _items = { "item1", "item2", "item3", "item4",
"item5", "item6", "item7" };

AlertDialog.Builder daysBuilder = new AlertDialog.Builder(this);
    daysBuilder.setTitle("SomeCaption");

    daysBuilder.setMultiChoiceItems(_items,new Boolean[] { false, true, false, 
false false false, true }, SetListener);
    daysBuilder.setPositiveButton("OK", OKListener);
    daysBuilder.setNegativeButton("Cancel", CancelListener);

    AlertDialog alert = daysBuilder.create();
    alert.show();`

通过语句“new Boolean[] { false, true, false false false false, true }”可以 在对话框中,默认情况下选中/取消选中

当我打开对话框时,更改项目的选择,然后关闭对话框(通过按“取消”或设备的“上一步”按钮)。到目前为止还不错

但当我重新打开对话框时,这些项的状态与上次打开对话框时的更改相同

但是,当对话框在第一次打开时被取消时,我想让项目处于选中/取消选中状态,就像我创建对话框时一样(new Boolean[] { false, true, false false false false, true }

所以基本上,我需要一个机会,在对话框丢失时得到通知,这样我就可以重置项目的状态

我用对话框对象的setOnDismissListener试过了。不幸的是,这只在API 17中可用

setOnDismissListener在emulator(API 17)中非常适合我(正是我所需要的),但在我的设备(Android 4.1=>;API 16)上却不行

API 16中有类似的东西吗


共 (1) 个答案

  1. # 1 楼答案

    问题是你正在使用setOnDismissListenerAlertDialog.Builder。这是在Api级别17中引入的,AlertDialog本身自Api级别1以来一直存在

    AlertDialog alert = daysBuilder.create();
    alert.setOndismissListener(yourdismisslistener);
    alert.show();`